<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Data Structures for Sets and Graphs: OrderedBinaryRelation&lt; T &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Data Structures for Sets and Graphs
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">OrderedBinaryRelation&lt; T &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A Binary Relation with a specified order between to elements and two pairs of elements.  
 <a href="classOrderedBinaryRelation.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="OrderedBinaryRelation_8h_source.html">OrderedBinaryRelation.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for OrderedBinaryRelation&lt; T &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classOrderedBinaryRelation__inherit__graph.png" border="0" usemap="#OrderedBinaryRelation_3_01T_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="OrderedBinaryRelation_3_01T_01_4_inherit__map" id="OrderedBinaryRelation_3_01T_01_4_inherit__map">
<area shape="rect" id="node2" href="classDirectlyAddressedSet.html" title="DirectlyAddressedSet\l\&lt; OrderedPair\&lt; T \&gt; \&gt;" alt="" coords="23,6,172,53"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for OrderedBinaryRelation&lt; T &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classOrderedBinaryRelation__coll__graph.png" border="0" usemap="#OrderedBinaryRelation_3_01T_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="OrderedBinaryRelation_3_01T_01_4_coll__map" id="OrderedBinaryRelation_3_01T_01_4_coll__map">
<area shape="rect" id="node2" href="classDirectlyAddressedSet.html" title="DirectlyAddressedSet\l\&lt; OrderedPair\&lt; T \&gt; \&gt;" alt="" coords="23,137,172,183"/><area shape="rect" id="node4" href="classDirectlyAddressedSet_1_1Iterator.html" title="A general iterator to scan a DirectlyAddressedSet." alt="" coords="23,6,172,53"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classOrderedBinaryRelation-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a2e3b79e896df2f798f5a909712976b75"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#a2e3b79e896df2f798f5a909712976b75">add</a> (<a class="el" href="classOrderedPair.html">OrderedPair</a>&lt; T &gt; par)</td></tr>
<tr class="memdesc:a2e3b79e896df2f798f5a909712976b75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a pair to the binary relation represented by this element.  <a href="#a2e3b79e896df2f798f5a909712976b75"></a><br/></td></tr>
<tr class="memitem:a48122847c1209dfb67ea784dda760573"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#a48122847c1209dfb67ea784dda760573">remove</a> (<a class="el" href="classOrderedPair.html">OrderedPair</a>&lt; T &gt; par)</td></tr>
<tr class="memdesc:a48122847c1209dfb67ea784dda760573"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a pair to the binary relation represented by this element.  <a href="#a48122847c1209dfb67ea784dda760573"></a><br/></td></tr>
<tr class="memitem:a47988caa1da80f53375aac891710f5d2"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#a47988caa1da80f53375aac891710f5d2">add</a> (T x, T y)=0</td></tr>
<tr class="memdesc:a47988caa1da80f53375aac891710f5d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a pair to the binary relation represented by this element.  <a href="#a47988caa1da80f53375aac891710f5d2"></a><br/></td></tr>
<tr class="memitem:aef6dc04c6bf65bfb99e806828569d025"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#aef6dc04c6bf65bfb99e806828569d025">remove</a> (T x, T y)=0</td></tr>
<tr class="memdesc:aef6dc04c6bf65bfb99e806828569d025"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a pair to the binary relation represented by this element.  <a href="#aef6dc04c6bf65bfb99e806828569d025"></a><br/></td></tr>
<tr class="memitem:a7723d1310f158eda930c410d9d223a5a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a>&lt; T &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#a7723d1310f158eda930c410d9d223a5a">image</a> (T elem)=0</td></tr>
<tr class="memdesc:a7723d1310f158eda930c410d9d223a5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a set of the elements that make pair with the specified one in the relation where the specified element is the first element.  <a href="#a7723d1310f158eda930c410d9d223a5a"></a><br/></td></tr>
<tr class="memitem:af241d63d37d0710b0b4ebafd4ff2315a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a>&lt; T &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#af241d63d37d0710b0b4ebafd4ff2315a">inverse</a> (T elem)=0</td></tr>
<tr class="memdesc:af241d63d37d0710b0b4ebafd4ff2315a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a set of the elements that make pair with the specified one in the relation where the specified element is the second element.  <a href="#af241d63d37d0710b0b4ebafd4ff2315a"></a><br/></td></tr>
<tr class="memitem:a6db00a84cc903947a2bacec6a7827a2f"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#a6db00a84cc903947a2bacec6a7827a2f">isTransitive</a> ()=0</td></tr>
<tr class="memdesc:a6db00a84cc903947a2bacec6a7827a2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify if the relation is transitive.  <a href="#a6db00a84cc903947a2bacec6a7827a2f"></a><br/></td></tr>
<tr class="memitem:a9b0d0099aa6b097d6e0017f0319ad89d"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#a9b0d0099aa6b097d6e0017f0319ad89d">isReflexive</a> ()=0</td></tr>
<tr class="memdesc:a9b0d0099aa6b097d6e0017f0319ad89d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify if the relation is reflexive.  <a href="#a9b0d0099aa6b097d6e0017f0319ad89d"></a><br/></td></tr>
<tr class="memitem:a88ad457c8776cc80db0e2a7c10ec855b"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#a88ad457c8776cc80db0e2a7c10ec855b">isEmpty</a> ()=0</td></tr>
<tr class="memdesc:a88ad457c8776cc80db0e2a7c10ec855b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify if the relation is empty.  <a href="#a88ad457c8776cc80db0e2a7c10ec855b"></a><br/></td></tr>
<tr class="memitem:a3fccd9bbfaa26d7e99b9b768e9caaf81"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#a3fccd9bbfaa26d7e99b9b768e9caaf81">isSimetric</a> ()=0</td></tr>
<tr class="memdesc:a3fccd9bbfaa26d7e99b9b768e9caaf81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify if the relation is simetric.  <a href="#a3fccd9bbfaa26d7e99b9b768e9caaf81"></a><br/></td></tr>
<tr class="memitem:a28ea5ec4f747dee7220f930d261ddac4"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#a28ea5ec4f747dee7220f930d261ddac4">isAntiSimetric</a> ()=0</td></tr>
<tr class="memdesc:a28ea5ec4f747dee7220f930d261ddac4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify if the relation is antisimetric.  <a href="#a28ea5ec4f747dee7220f930d261ddac4"></a><br/></td></tr>
<tr class="memitem:a05b113dcdf2c4ee72f5220e56d43d717"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#a05b113dcdf2c4ee72f5220e56d43d717">degreeIn</a> (T elem)=0</td></tr>
<tr class="memdesc:a05b113dcdf2c4ee72f5220e56d43d717"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of pairs in wich the specified element is the first element.  <a href="#a05b113dcdf2c4ee72f5220e56d43d717"></a><br/></td></tr>
<tr class="memitem:a1608503da84d8a7a78afa222deae9060"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#a1608503da84d8a7a78afa222deae9060">degreeOut</a> (T elem)=0</td></tr>
<tr class="memdesc:a1608503da84d8a7a78afa222deae9060"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of pairs in wich the specified element is the second element.  <a href="#a1608503da84d8a7a78afa222deae9060"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a355f6486643cdd45e409cc85b2153b76"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classOrderedBinaryRelation.html#a355f6486643cdd45e409cc85b2153b76">OrderedBinaryRelation</a> ()</td></tr>
<tr class="memdesc:a355f6486643cdd45e409cc85b2153b76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic constructor.  <a href="#a355f6486643cdd45e409cc85b2153b76"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_methods_classDirectlyAddressedSet"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classDirectlyAddressedSet')"><img src="closed.png" alt="-"/>&nbsp;Private Member Functions inherited from <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet< OrderedPair< T > ></a></td></tr>
<tr class="memitem:a88d7e26e952770c53a961e98c17a41c7 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a88d7e26e952770c53a961e98c17a41c7">~DirectlyAddressedSet</a> ()</td></tr>
<tr class="memdesc:a88d7e26e952770c53a961e98c17a41c7 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a88d7e26e952770c53a961e98c17a41c7"></a><br/></td></tr>
<tr class="memitem:a849f2439a4b639973e8f85652394b70f inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a849f2439a4b639973e8f85652394b70f">clone</a> () const =0</td></tr>
<tr class="memdesc:a849f2439a4b639973e8f85652394b70f inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a copy of this object.  <a href="#a849f2439a4b639973e8f85652394b70f"></a><br/></td></tr>
<tr class="memitem:acabc40612169e2623d80b19c784e551a inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual <br class="typebreak"/>
<a class="el" href="classDirectlyAddressedSet_1_1Iterator.html">DirectlyAddressedSet::Iterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#acabc40612169e2623d80b19c784e551a">newIterator</a> ()=0</td></tr>
<tr class="memdesc:acabc40612169e2623d80b19c784e551a inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts a new iterator for this set.  <a href="#acabc40612169e2623d80b19c784e551a"></a><br/></td></tr>
<tr class="memitem:a2467222186e9bf62f8ca6daabe3628f9 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual <br class="typebreak"/>
<a class="el" href="classDirectlyAddressedSet_1_1Iterator.html">DirectlyAddressedSet::Iterator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a2467222186e9bf62f8ca6daabe3628f9">newComplIterator</a> ()=0</td></tr>
<tr class="memdesc:a2467222186e9bf62f8ca6daabe3628f9 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">An Iterator for the complement of the set represented by the object.  <a href="#a2467222186e9bf62f8ca6daabe3628f9"></a><br/></td></tr>
<tr class="memitem:a3729ca91844f9307afe06f93067e5b2f inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a3729ca91844f9307afe06f93067e5b2f">nextOf</a> (long i)</td></tr>
<tr class="memdesc:a3729ca91844f9307afe06f93067e5b2f inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the next key in the set, in ascending order, of the specified value.  <a href="#a3729ca91844f9307afe06f93067e5b2f"></a><br/></td></tr>
<tr class="memitem:ac579abc5639d6b55f3d16a177e88ad40 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#ac579abc5639d6b55f3d16a177e88ad40">isInSet</a> (long i) const =0</td></tr>
<tr class="memdesc:ac579abc5639d6b55f3d16a177e88ad40 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify if a element of the universe is in the set.  <a href="#ac579abc5639d6b55f3d16a177e88ad40"></a><br/></td></tr>
<tr class="memitem:a53b903fb7339a9cfa0b97242f984b01c inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a53b903fb7339a9cfa0b97242f984b01c">toArray</a> (long *size)=0</td></tr>
<tr class="memdesc:a53b903fb7339a9cfa0b97242f984b01c inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a vector of the elements in the set.  <a href="#a53b903fb7339a9cfa0b97242f984b01c"></a><br/></td></tr>
<tr class="memitem:a68b2f85831f12352973e8f64fb61a924 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a68b2f85831f12352973e8f64fb61a924">universeSize</a> () const </td></tr>
<tr class="memdesc:a68b2f85831f12352973e8f64fb61a924 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of the universe.  <a href="#a68b2f85831f12352973e8f64fb61a924"></a><br/></td></tr>
<tr class="memitem:ab17ea6e0af7dc026fb12d267c6849530 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#ab17ea6e0af7dc026fb12d267c6849530">isEmpty</a> () const =0</td></tr>
<tr class="memdesc:ab17ea6e0af7dc026fb12d267c6849530 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether this set is empty.  <a href="#ab17ea6e0af7dc026fb12d267c6849530"></a><br/></td></tr>
<tr class="memitem:a3a433c49b02c6e0f582b2e9ed60fac4e inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a3a433c49b02c6e0f582b2e9ed60fac4e">subset</a> (long from, long to) const =0</td></tr>
<tr class="memdesc:a3a433c49b02c6e0f582b2e9ed60fac4e inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subset containing the elements between the specified values.  <a href="#a3a433c49b02c6e0f582b2e9ed60fac4e"></a><br/></td></tr>
<tr class="memitem:af430216503558a4cfb9b4647ec9c2646 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#af430216503558a4cfb9b4647ec9c2646">getComplement</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *res)=0</td></tr>
<tr class="memdesc:af430216503558a4cfb9b4647ec9c2646 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">The complement of the current set, stored in the set res.  <a href="#af430216503558a4cfb9b4647ec9c2646"></a><br/></td></tr>
<tr class="memitem:a65c7a90ea3d3c767a2a8dbe0f9cde2ee inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a65c7a90ea3d3c767a2a8dbe0f9cde2ee">toSet</a> (long i)=0</td></tr>
<tr class="memdesc:a65c7a90ea3d3c767a2a8dbe0f9cde2ee inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds the specified key to the set (optional operation).  <a href="#a65c7a90ea3d3c767a2a8dbe0f9cde2ee"></a><br/></td></tr>
<tr class="memitem:afe74e2eeeee28e478c34669899dc96fd inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#afe74e2eeeee28e478c34669899dc96fd">toCompl</a> (long i)=0</td></tr>
<tr class="memdesc:afe74e2eeeee28e478c34669899dc96fd inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the specified key from the set (optional operation).  <a href="#afe74e2eeeee28e478c34669899dc96fd"></a><br/></td></tr>
<tr class="memitem:a0f014bb0aa9685b3eb7c5dc34c35042d inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a0f014bb0aa9685b3eb7c5dc34c35042d">flip</a> (long i)=0</td></tr>
<tr class="memdesc:a0f014bb0aa9685b3eb7c5dc34c35042d inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap a element between the set and the complement (optional operation).  <a href="#a0f014bb0aa9685b3eb7c5dc34c35042d"></a><br/></td></tr>
<tr class="memitem:aef0b3fb51862f67e872bd9c984e18b7c inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#aef0b3fb51862f67e872bd9c984e18b7c">allToSet</a> ()=0</td></tr>
<tr class="memdesc:aef0b3fb51862f67e872bd9c984e18b7c inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add all the elements in the universe to the set (optional operation)  <a href="#aef0b3fb51862f67e872bd9c984e18b7c"></a><br/></td></tr>
<tr class="memitem:a07ad3c0c3ca7df962ad9af56df76a098 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a07ad3c0c3ca7df962ad9af56df76a098">allToCompl</a> ()=0</td></tr>
<tr class="memdesc:a07ad3c0c3ca7df962ad9af56df76a098 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add all the elements in the universe to the complement (optional operation)  <a href="#a07ad3c0c3ca7df962ad9af56df76a098"></a><br/></td></tr>
<tr class="memitem:a254e14e6aad4b4b7969acf896fd750a2 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a254e14e6aad4b4b7969acf896fd750a2">flipAll</a> ()=0</td></tr>
<tr class="memdesc:a254e14e6aad4b4b7969acf896fd750a2 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">The complement of the current set (optional operation)  <a href="#a254e14e6aad4b4b7969acf896fd750a2"></a><br/></td></tr>
<tr class="memitem:ace4dc1b4e41e18d0c7cef3fa17c64dc5 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#ace4dc1b4e41e18d0c7cef3fa17c64dc5">addAll</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v)</td></tr>
<tr class="memdesc:ace4dc1b4e41e18d0c7cef3fa17c64dc5 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Union of the current set and a specified set (optional operation).  <a href="#ace4dc1b4e41e18d0c7cef3fa17c64dc5"></a><br/></td></tr>
<tr class="memitem:a385114535ad6bc398181459b1b01c75a inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a385114535ad6bc398181459b1b01c75a">symDiff</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v)</td></tr>
<tr class="memdesc:a385114535ad6bc398181459b1b01c75a inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Symmetric difference of the current set and a specified set (optional operation)  <a href="#a385114535ad6bc398181459b1b01c75a"></a><br/></td></tr>
<tr class="memitem:af45e06fe443a71cb91635ddd397ec35f inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#af45e06fe443a71cb91635ddd397ec35f">removeAll</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v)</td></tr>
<tr class="memdesc:af45e06fe443a71cb91635ddd397ec35f inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Difference of the current set and a specified set (optional operation)  <a href="#af45e06fe443a71cb91635ddd397ec35f"></a><br/></td></tr>
<tr class="memitem:a722dd648d9caa8449f26741f53b85ba2 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a722dd648d9caa8449f26741f53b85ba2">retainAll</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v)</td></tr>
<tr class="memdesc:a722dd648d9caa8449f26741f53b85ba2 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Intersection of the current set and a specified set (optional operation)  <a href="#a722dd648d9caa8449f26741f53b85ba2"></a><br/></td></tr>
<tr class="memitem:a574cd41ea4981a5ff94ce64337eb0cdf inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a574cd41ea4981a5ff94ce64337eb0cdf">unionOf</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v, <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *w)</td></tr>
<tr class="memdesc:a574cd41ea4981a5ff94ce64337eb0cdf inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds to this set all the elements in the union of two specified sets (optional operation)  <a href="#a574cd41ea4981a5ff94ce64337eb0cdf"></a><br/></td></tr>
<tr class="memitem:a49b2feab5c731dc3d2b3ff316597345a inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a49b2feab5c731dc3d2b3ff316597345a">symDiffOf</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v, <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *w)</td></tr>
<tr class="memdesc:a49b2feab5c731dc3d2b3ff316597345a inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds to this set all the elements in the symmetric difference of two specified sets (optional operation)  <a href="#a49b2feab5c731dc3d2b3ff316597345a"></a><br/></td></tr>
<tr class="memitem:aaf806e606c647a25918827d95467db5d inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#aaf806e606c647a25918827d95467db5d">intersectOf</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v, <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *w)</td></tr>
<tr class="memdesc:aaf806e606c647a25918827d95467db5d inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds to this set all the elements in the intersection of two specified sets (optional operation)  <a href="#aaf806e606c647a25918827d95467db5d"></a><br/></td></tr>
<tr class="memitem:ad671fb37b8eee9801d1550fe92504ab0 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#ad671fb37b8eee9801d1550fe92504ab0">diffOf</a> (<a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *v, <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a> *w)</td></tr>
<tr class="memdesc:ad671fb37b8eee9801d1550fe92504ab0 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds to this set all the elements in the difference of two specified sets (optional operation)  <a href="#ad671fb37b8eee9801d1550fe92504ab0"></a><br/></td></tr>
<tr class="memitem:a6ab0477539b69fb94e8b8bca622cc187 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a6ab0477539b69fb94e8b8bca622cc187">firstInSet</a> ()</td></tr>
<tr class="memdesc:a6ab0477539b69fb94e8b8bca622cc187 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the first element of the set represented by the current object.  <a href="#a6ab0477539b69fb94e8b8bca622cc187"></a><br/></td></tr>
<tr class="memitem:a798e2503651986e33dd7af1e510f50a6 inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a798e2503651986e33dd7af1e510f50a6">firstInCompl</a> ()=0</td></tr>
<tr class="memdesc:a798e2503651986e33dd7af1e510f50a6 inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the first element of the complement of the set represented by the current object.  <a href="#a798e2503651986e33dd7af1e510f50a6"></a><br/></td></tr>
<tr class="memitem:a3340fde7ad523ac0c3e121b898be1e3c inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a3340fde7ad523ac0c3e121b898be1e3c">cardOfSet</a> () const </td></tr>
<tr class="memdesc:a3340fde7ad523ac0c3e121b898be1e3c inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">The cardinality of the set represented by the object.  <a href="#a3340fde7ad523ac0c3e121b898be1e3c"></a><br/></td></tr>
<tr class="memitem:a86fbb2d9a8fc212f513d0ded3bee67dc inherit pub_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#a86fbb2d9a8fc212f513d0ded3bee67dc">cardOfCompl</a> () const </td></tr>
<tr class="memdesc:a86fbb2d9a8fc212f513d0ded3bee67dc inherit pub_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">The cardinality of the complement of the set represented by the object.  <a href="#a86fbb2d9a8fc212f513d0ded3bee67dc"></a><br/></td></tr>
<tr class="memitem:ad5b694fa37b9b6d2fe79ddee76724de5 inherit pro_methods_classDirectlyAddressedSet"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDirectlyAddressedSet.html#ad5b694fa37b9b6d2fe79ddee76724de5">DirectlyAddressedSet</a> (long size)</td></tr>
<tr class="memdesc:ad5b694fa37b9b6d2fe79ddee76724de5 inherit pro_methods_classDirectlyAddressedSet"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic constructor.  <a href="#ad5b694fa37b9b6d2fe79ddee76724de5"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T&gt;<br/>
class OrderedBinaryRelation&lt; T &gt;</h3>

<p>A Binary Relation with a specified order between to elements and two pairs of elements. </p>
<p>A Binary Relation in a universe with a specified order between the elements of the universe and between the pairs of elements. usually the order used to implement this class is a lexicographic order based in the one applied to the elements in the universe.</p>
<p>The binary relation can be viewed as a set of pairs of the universe. For this reason this class is a orderedSet as well. Again the order between pairs of elements is dependent of each implementation of this abstract class.</p>
<p>The universe is determined in each implementation as well. Notice that the universe determined are the set of valid ELEMENTS to make pairs not the valid pairs. The real universe of this object are ALL the pair composed by elements of the universe determined in each implementation. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a355f6486643cdd45e409cc85b2153b76"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::<a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Basic constructor. </p>
<p>used to allocate memory for a object of this class </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a2e3b79e896df2f798f5a909712976b75"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOrderedPair.html">OrderedPair</a>&lt; T &gt;&#160;</td>
          <td class="paramname"><em>par</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a pair to the binary relation represented by this element. </p>
<p>Add a pair to the binary relation represented by this object. if the pair is composed by a element to in the universe, it will cause a error.</p>
<p>The same as add(par.getX(), par.getY()).</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">the</td><td>pair to be added to the object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>true if the pair is added and false otherwise. </dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classOrderedBinaryRelation.html#a2e3b79e896df2f798f5a909712976b75" title="Add a pair to the binary relation represented by this element.">add()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a47988caa1da80f53375aac891710f5d2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::add </td>
          <td>(</td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a pair to the binary relation represented by this element. </p>
<p>Add a pair to the binary relation represented by this object. The pair is composed by the two elements passed as parameter to the function.</p>
<p>If one of the elements are not in the universe a error will occur. This method must be implement in each child concrete class because depends on the the data structure.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>the first element of the pair. </td></tr>
    <tr><td class="paramname">y</td><td>the second element of the pair.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>true if the pair is added and false otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="a05b113dcdf2c4ee72f5220e56d43d717"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual long <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::degreeIn </td>
          <td>(</td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>elem</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The number of pairs in wich the specified element is the first element. </p>
<p>Return the cardinality of the set returned by reverse(elem).</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">elem</td><td>the specified element</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>the number of pairs in which elem is the first element.</dd></dl>
<dl class="section see"><dt>See also:</dt><dd>reverse(). </dd></dl>

</div>
</div>
<a class="anchor" id="a1608503da84d8a7a78afa222deae9060"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual long <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::degreeOut </td>
          <td>(</td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>elem</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The number of pairs in wich the specified element is the second element. </p>
<p>Return the cardinality of the set returned by image(elem).</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">elem</td><td>the specified element</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>the number of pairs in which elem is the second element.</dd></dl>
<dl class="section see"><dt>See also:</dt><dd>reverse(). </dd></dl>

</div>
</div>
<a class="anchor" id="a7723d1310f158eda930c410d9d223a5a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a>&lt;T&gt;* <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::image </td>
          <td>(</td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>elem</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return a set of the elements that make pair with the specified one in the relation where the specified element is the first element. </p>
<p>Return a set <img class="formulaInl" alt="$ C $" src="form_1.png"/> of all the elements of the universe such that in the current state of the object make a pair with the specified one.</p>
<p>More precisely <img class="formulaInl" alt="$ C =\{u \mid (elem, u) \in R \}$" src="form_2.png"/> where R is the binary relation represented by this object.</p>
<p>Notice that the order is very important here. The elements in <em>C</em> must be the seconds in the pair.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">elem</td><td>the specified element</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>the image set of elem. The set of all elements u such that (elem,u) belongs to the relation. </dd></dl>

</div>
</div>
<a class="anchor" id="af241d63d37d0710b0b4ebafd4ff2315a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classDirectlyAddressedSet.html">DirectlyAddressedSet</a>&lt;T&gt;* <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::inverse </td>
          <td>(</td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>elem</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return a set of the elements that make pair with the specified one in the relation where the specified element is the second element. </p>
<p>Return a set <img class="formulaInl" alt="$ C $" src="form_1.png"/> of all the elements of the universe such that in the current state of the object make a pair with the specified one.</p>
<p>More precisely <img class="formulaInl" alt="$ C =\{u \mid (u, elem) \in R \}$" src="form_3.png"/> where R is the binary relation represented by this object.</p>
<p>Notice that the order is very important here. The elements in <em>C</em> must be the firsts in the pair.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">elem</td><td>the specified element</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>the image set of elem. The set of all elements u such that (u,elem) belongs to the relation. </dd></dl>

</div>
</div>
<a class="anchor" id="a28ea5ec4f747dee7220f930d261ddac4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::isAntiSimetric </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Verify if the relation is antisimetric. </p>
<p>Verify if the relation is antisimetric. A relation is antisimetric if for all pair (u,v) in the relation, the pair (v,u) is not in the relation as well.</p>
<dl class="section return"><dt>Returns:</dt><dd>true if the relation represented by this object is antisimetric and false otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="a88ad457c8776cc80db0e2a7c10ec855b"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::isEmpty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Verify if the relation is empty. </p>
<p>Verify if the relation is empty, has no pair at all. This information depends on the data structure used to implement this class, so each child concrete class must implement this method.</p>
<dl class="section return"><dt>Returns:</dt><dd>true if the relation represented by this object is empty and false otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="a9b0d0099aa6b097d6e0017f0319ad89d"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::isReflexive </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Verify if the relation is reflexive. </p>
<p>Verify if the relation is reflexive. A relation is reflexive if for all element u of the universe the pair (u,u) is in the relation.</p>
<dl class="section return"><dt>Returns:</dt><dd>true if the relation represented by this object is reflexive and false otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="a3fccd9bbfaa26d7e99b9b768e9caaf81"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::isSimetric </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Verify if the relation is simetric. </p>
<p>Verify if the relation is simetric. A relation is simetric if for all pair (u,v) in the relation, the pair (v,u) is in the relation as well.</p>
<dl class="section return"><dt>Returns:</dt><dd>true if the relation represented by this object is simetric and false otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="a6db00a84cc903947a2bacec6a7827a2f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::isTransitive </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Verify if the relation is transitive. </p>
<p>Verify if the relation is transitive. A relation is transitive if for all pairs (u,v) and (v,z) in the relation, pair (u,z) is in the relation as well</p>
<dl class="section return"><dt>Returns:</dt><dd>true if the relation represented by this object is transitive and false otherwise. </dd></dl>

</div>
</div>
<a class="anchor" id="a48122847c1209dfb67ea784dda760573"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::remove </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classOrderedPair.html">OrderedPair</a>&lt; T &gt;&#160;</td>
          <td class="paramname"><em>par</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Remove a pair to the binary relation represented by this element. </p>
<p>Remove a pair to the binary relation represented by this object. if the pair is composed by a element to in the universe, it will cause a error.</p>
<p>The same as remove(par.getX(), par.getY()).</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">the</td><td>pair to be removed to the object.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>true if the pair is removed and false otherwise.</dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classOrderedBinaryRelation.html#a48122847c1209dfb67ea784dda760573" title="Remove a pair to the binary relation represented by this element.">remove()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aef6dc04c6bf65bfb99e806828569d025"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classOrderedBinaryRelation.html">OrderedBinaryRelation</a>&lt; T &gt;::remove </td>
          <td>(</td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T&#160;</td>
          <td class="paramname"><em>y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Remove a pair to the binary relation represented by this element. </p>
<p>Remove a pair to the binary relation represented by this object. The pair is composed by the two elements passed as parameter to the function.</p>
<p>If one of the elements are not in the universe a error will occur. This method must be implement in each child concrete class because depends on the the data structure.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>the first element of the pair. </td></tr>
    <tr><td class="paramname">y</td><td>the second element of the pair.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>true if the pair is removed and false otherwise. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>datastruct/<a class="el" href="OrderedBinaryRelation_8h_source.html">OrderedBinaryRelation.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Nov 26 2012 17:06:46 for Data Structures for Sets and Graphs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.1
</small></address>
</body>
</html>
